ติดตามพัสดุ Kerry Express ทีละหลายๆชิ้นด้วย Google Sheets ในไม่กี่นาที
Table of Contents
สำหรับผู้ค้าออนไลน์การรายงานหรือติดตามสถานะของสินค้าที่ถูกจัดส่งไปให้ลูกค้านั้นมีความสำคัญมาก เพราะถ้าคุณรู้ข้อมูลเร็วคุณก็จะสามารถแก้ปัญหาให้ลูกค้าได้ทันเวลา แต่ว่าเครื่องมือที่ Kerry Express ทำมาให้กลับทำให้เราตรวจสอบได้แค่ทีละชิ้นนี่สิ เรามาแก้ปัญหานี้กันครับ
วิธีปกติ #
การติดตามพัสดุของ Kerry ตามปกติเราก็จะเข้าไปที่เว็บไซต์ของบริษัทแล้วก็กรอกหมายเลขพัสดุลงไปสุดท้ายเราก็จะเห็นหน้าตาเว็บแบบนี้

สิ่งที่เราต้องการจะเห็นในหน้านี้ก็คือสถานะพัสดุว่าส่งไปถึงไหนแล้วบ้างในฝั่งขวามือ ผมอยากได้ข้อมูลพวกนั้นไปแสดงใน Google Sheets ของผม ผมเลยเข้าไปสังเกตอะไรนิดหน่อยเพื่อหาตำแหน่งของข้อมูลสถานะในหน้าเว็บครับ

ส่วนนี้ใครเป็นโปรแกรมเมอร์หรือเคยเรียนมาน่าจะรู้ว่าไอ้เจ้า HTML เนี่ยเราสามารถใช้การ query หา node ได้ด้วย XPath ใช่ไหมครับ แล้วพอดีเลยว่า Google Sheets นั่นมีคำสั่ง =IMPORTXML(url, query)
แบบนี้ก็สบายสิ คลิกขวาที่ node แล้วไปที่ Copy > Copy XPath เราก็จะได้ข้อมูลตัวนี้ครับ

//*[@id="trackArea"]/div/div/div/div/div/div[2]/div[1]/div[2]/div[1]/text()[1]
เป็นอันเรียบร้อยครับ เก็บ XPath ตัวนี้ไว้แล้วเดี๋ยวเราไปสร้าง Sheet กัน สำหรับใครไม่เข้าใจไม่เป็นไรครับ copy เจ้า code ยาวๆด้านบนไว้ได้เลย
คำเตือน #
บทความนี้เขียนเมื่อวันที่ 25 สิงหาคม 2562 นะครับ หน้าเว็บ Kerry อาจจะมีการเปลี่ยนแปลงซึ่งจะส่งผลโดยตรงกับสูตรนี้ในอนาคต หากใช้ไม่ได้เราต้องมา update XPath กันใหม่นะครับ
สร้าง Sheet #
เปิด Google Sheets ขึ้นมาสร้าง Sheet หน้าตาแบบนี้นะครับ จะมี column ดังนี้ครับ
- หมายเลขพัสดุ ตรงนี้กรอกค่าลงไปรอได้เลยแบบในรูปนะครับ
- ลิงค์
- สถานะล่าสุด

สร้างลิงค์ #
การติดตามพัสดุวิธีนี้ก็คือการที่เราสั่งให้ Google Sheets มันเข้าเว็บแทนเราครับ ดังนั้นจะให้มันเข้าเว็บไหนเราก็ต้องเตรียม url เอาไว้ให้มันด้วย และเป้าหมายปลายทางที่เราอยากจะให้มันเข้าไปก็คือ
https://th.kerryexpress.com/th/track/?track=หมายเลขพัสดุ
ถ้าใครสังเกตนะครับ ทุกครั้งที่เราเข้าติดตามสถานะในเว็บไซต์เราจะได้ url หน้าตาแบบนี้ตลอด (ยกเว้น kerry จะมีการเปลี่ยนในอนาคตนะ) ตอนนี้หมายเลขพัสดุเราก็มีอยู่แล้ว เราก็แค่เอามันมาต่อท้ายสินะ ก็จัดไปด้วยสูตรนี้ครับ
=ARRAYFORMULA(
IF(
A2:A<>"",
"https://th.kerryexpress.com/th/track/?track="&A2:A,
""
)
)
หรือใครจะใช้สูตรนี้ในช่องแรกแล้วลากลงไปเองก็ได้นะครับ
="https://th.kerryexpress.com/th/track/?track="&A2
เราก็จะได้ลิงค์มาอย่างนี้

ดึงสถานะล่าสุดมาแสดง #
เมื่อทุกอย่างพร้อมแล้วเราก็จะใช้คำสั่ง =IMPORTXML()
นะครับ เพื่อดึงข้อมูลจากหน้าเว็บมาที่ Google Sheets โดยสูตรก็จะหน้าตาอย่างนี้
=IMPORTXML(B2,"//*[@id='trackArea']/div/div/div/div/div/div[2]/div[1]/div[2]/div[1]/text()[1]")
ใครงงว่ายึกยือๆข้างหลังนี่คืออะไร จำที่ผมบอกให้ copy ไว้ด้านบนได้ไหมครับ มันคือ XPath ที่เราใช้ชี้ไปหาข้อมูลสถานะล่าสุดนั่นเอง

เนื่องจากคำสั่งนี้ใช้กับ =ARRAYFORMULA()
ไม่ได้ เราจึงจำเป็นต้องลากสูตรลงไปด้านล่างเอง และผลลัพธ์ก็จะออกมาสวยงามแบบนี้ครับ พอดีหมายเลขที่ผมเอามาใช้มันเป็นข้อมูลเก่าทุกชิ้นเลยไปถึงปลายทางหมดแล้ว

เพียงเท่านี้คุณก็สามารถติดตามพัสดุของลูกค้าได้อย่างง่ายๆ ไม่ต้องเสียเวลาเปิดทีละหน้าแล้ว วิธีนี้สามารถประยุกต์ได้กับบริษัทอื่นที่อาจจะมีลักษณะเว็บคล้ายๆกันนะครับ